#ifndef GUI_HEADER
#define GUI_HEADER

#include <windows.h>
#include "..\Inputs\AbstractClasses\KeyboardListener.h"
#include "..\Inputs\AbstractClasses\MouseListener.h"
#include "..\GameEngine.h"
#include <stdio.h>

class GUIManager : public KeyboardListener {

public:
	static GUIManager* Instance();
	static void create();				//creates 
	static void destroy();

	void onKeyPressed(int);
	void onKeyReleased(int);
	void onSpecialKeyPressed(int);
	void glutSpecialFunc(void (*func)(int key, int x, int y));

	/*void onMouseMoved(int, int);			//If a mouseIsMoved, this function is called
	void onMouseClicked(int, int);			//If a mouseIsClicked, this function is called
	void onMouseScrolled(int, int, int);	//If a mouseIsScrolled, this function is called*/

	void addMenuBckgnd(char *menuBckgndTexture);
	bool addMenuOption(char *menuOption);	//Adds an option to the menu. Returns true if option was added, false otherwise
	bool addMenuInfo(char *menuInfo);
	void displayGameMenu();

	int menuOptionsActions[10];
	//void assignActionToMenuOption(int menuOptionNr,int methodToCall);

	char *menuOptionNumber[10];

private:
	POINT3D backgroundpos;
	char* menuOptions[10];
	char* menuInfo[10];
	char menuBackgroundTexture[30];

protected:
	GUIManager();						// Contrustor
	~GUIManager();								// Destructor
	static GUIManager *_instance;
	int numberOfOptions;
	int numberOfInfos;
	int optionSelected;
	COLOR optionsColor;

};

#endif